#pragma once

#include <iostream>

#include "Protocol.hpp"

using namespace Space_Protocol;
class Calcuate
{
public:
    Calcuate()
    {
    }
    Response Excute(const Request &req)
    {
        Response resp(0, 0);

        switch (req._oper)
        {
        case '+':
            resp._result = req._x+req._y;
            break;
        case '-':
            resp._result = req._x-req._y;
            break;
        case '*':
            resp._result = req._x*req._y;
            break;
        case '/':
            if(req._y == 0)
            {
                resp._code = 1;
            }
            else
            {
                resp._result = req._x / req._y;
            }
            break;
        case '%':
            if(req._y == 0)
            {
                resp._code = 2;
            }
            else
            {
                resp._result = req._x % req._y;
            }
            break;
        default:
            resp._code = 3;//表示非法计算
            break;
        }

        return resp;
    }
    ~Calcuate()
    {
    }
};